Skip to content

Added support for scene-based imports via custom static mesh format#68

Merged
jonjondev merged 34 commits intomainfrom
feature/gltf-support
Aug 4, 2025
Merged

Added support for scene-based imports via custom static mesh format#68
jonjondev merged 34 commits intomainfrom
feature/gltf-support

Conversation

@jonjondev
Copy link
Copy Markdown
Member

@jonjondev jonjondev commented Aug 3, 2025

Description

This PR introduces support for a wide range of scene-based 3D file imports via custom static mesh format (.sm). The packing of static mesh files have also replaced the tinyobjloader dependency with assimp, enabling importing from a wide variety of formats, including GLTF, which can support a node hierarchy of meshes, that are baked into the single mesh file on packing.

The work also sees the inclusion of a new runtime-interned string token system (technical details available here: https://capscollective.com/blog/siege-string-tokens/) for known token handling and comparison. To complement this new feature, attribute file parsing methods have been homogenised across the project to allow for custom asset files implementing this system (just scenes and static meshes for now) to be easily loaded and queried in a standard manner.

In addition to these new features, the following changes have also been made:

  • Improved logging for pack file generation
  • Manually pinned all vendor submodule dependencies in setup scripts
  • Removed GLM dependency
  • Added and updated unit testing for resources, scenes and more
  • Fixed zlib and libPng reuse for setup scripts
  • Fixed usages of VLAs across codebase
  • Fixed various packer related crashes
  • Fixed string class handling of wide characters

The PR has been...

  • provided a reasonable name that is not just the branch name (e.g "Added Vulkan render delegate")
  • linked to its related issue
  • assigned a reviewer from the team
  • labelled appropriately

The code has been...

  • made mergable and free of conflicts in relation to master (according to GitHub)
  • tested in a packaged state using the package targets
  • pulled to the reviewer's machine and reasonably tested

jonjondev and others added 30 commits January 26, 2025 20:10
@jonjondev jonjondev requested a review from Raelr August 3, 2025 22:40
@jonjondev jonjondev added enhancement New feature or request build Relating to the engine's build system utils Relating to the engine's utils labels Aug 3, 2025
Comment thread engine/core/entity/Entity.h Outdated
Comment thread engine/utils/FileSystem.cpp Outdated
Comment thread packer/src/types/GenericFileDataPacker.cpp Outdated
Comment thread packer/src/types/SceneDataPacker.cpp Outdated
Comment thread tests/src/utils/test_Token.cpp Outdated
Comment thread tests/src/utils/test_Token.cpp
Copy link
Copy Markdown
Contributor

@Raelr Raelr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Went over this with you @jonjondev and it LGTM

@jonjondev jonjondev merged commit 3c96562 into main Aug 4, 2025
4 checks passed
@jonjondev jonjondev deleted the feature/gltf-support branch August 4, 2025 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Relating to the engine's build system enhancement New feature or request utils Relating to the engine's utils

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants